package com.jy.modules.cims.interact.service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import com.jy.modules.cims.common.sysUtils.SimpleStringUtils;
import com.jy.modules.cims.data.dto.InteractClassInvokeDto;
import com.jy.modules.cims.data.dto.InteractClassParamterDto;
import com.jy.modules.cims.interact.InteractClassInvokeService;

/**
 * @classname InteractService
 * @description 执行接口信息服务实现类
 * @author shengzhoutao
 */
@Service("com.jy.modules.cims.interact.service.InteractService")
public class InteractService {
	
	@Autowired
	@Qualifier("com.jy.modules.cims.interact.InteractClassInvokeService")
	private InteractClassInvokeService interactClassInvokeService;

	/**
	 * @author shengzhoutao
	 * @description: 分页查询 T_C_MM_INTERACT_CLASS_INVOKE列表
	 * @date 2015-02-02 17:47:37
	 * @param searchParams
	 *            条件
	 * @return
	 * @throws
	 */
	public List<InteractClassInvokeDto> searchInteractClassInvokeByPaging(Map<String, Object> searchParams) throws Exception {
		List<InteractClassInvokeDto> dataList = interactClassInvokeService.searchInteractClassInvokeByPaging(searchParams);
		return dataList;
	}

	/**
	 * @author shengzhoutao
	 * @description: 按条件查询T_C_MM_INTERACT_CLASS_INVOKE列表
	 * @date 2015-02-02 17:47:37
	 * @param searchParams
	 *            条件
	 * @return
	 * @throws
	 */
	public List<InteractClassInvokeDto> searchInteractClassInvoke(Map<String, Object> searchParams) throws Exception {
		List<InteractClassInvokeDto> dataList = interactClassInvokeService.searchInteractClassInvoke(searchParams);
		return dataList;
	}

	/**
	 * @Description 根据主键查询执行接口信息，以及执行接口对应的参数信息
	 * @param id
	 *            主键id
	 * @return
	 * @throws Exception
	 *             InteractClassInvokeDto
	 * @author shengzhoutao
	 * @date 2015-2-3-上午10:42:50
	 * @update
	 * @throws
	 */
	public InteractClassInvokeDto queryInteractClassInvokeByPrimaryKey(final String id) throws Exception {

		return interactClassInvokeService.queryInteractClassInvokeByPrimaryKey(id);
	}

	/**
	 * @Description 根据业务流水号执行接口信息
	 * @param businessCode
	 *            业务流水号
	 * @author lixinyao
	 * @date 2015-2-3-下午8:45:34
	 * @update
	 * @throws
	 */
	public Object exeInteractClassInvokeByBusinessCode(final String businessCode) throws Exception {
		return interactClassInvokeService.exeInteractClassInvokeByBusinessCode(businessCode);
	}

	/**
	 * @Description 根据主键ID执行接口信息
	 * @param id
	 * @throws Exception
	 *             void
	 * @author shengzhoutao
	 * @date 2015-2-3-下午4:12:43
	 * @update
	 * @throws
	 */
	public Object exeInteractClassInvokeById(final String id) throws Exception {
		return interactClassInvokeService.exeInteractClassInvokeById(id);
	}

	/**
	 * @title: insertInteractClassInvoke
	 * @author JY-IT-D001
	 * @description: 新增 insertInteractClassInvoke对象
	 * @date 2016-04-11 11:12:30
	 * @param dto
	 * @return
	 * @throws
	 */
	@SuppressWarnings("all")
	public Long insertInteractClassInvoke(InteractClassInvokeDto dto) throws Exception {

		List<InteractClassParamterDto> interactClassParamterList = new ArrayList<InteractClassParamterDto>();
		InteractClassParamterDto interactClassParamterDto = null;

		String s = dto.getParamterName();
		String[] dName = dto.getParamterName().split("__");
		String[] dValue = dto.getParamterValue().split("__");
		
		if (null != dName && dName.length > 0) {
			for (int i = 0; i < dName.length; i++) {
				if(SimpleStringUtils.hasText(dName[i])){
				interactClassParamterDto = new InteractClassParamterDto();
				interactClassParamterDto.setBusinessCode(dto.getBusinessCode());
				interactClassParamterDto.setParameterName(dName[i]);
				interactClassParamterDto.setParameterValue(dValue[i]);

				interactClassParamterList.add(interactClassParamterDto);
				}
			}
			dto.setInteractClassParamterList(interactClassParamterList);
		}
		
		interactClassParamterDto = null;
		interactClassParamterList = null;

		Long keyId = interactClassInvokeService.insertInteractClassInvoke(dto);

		return keyId;
	}

}
